import axios from 'axios'
import Element from 'element-ui'
import store from './store'
import router from './router'

//配置默认url路径
axios.defaults.baseURL="http://localhost:8081"

//配置前置拦截
axios.interceptors.request.use( config => {
  console.log("111111111111111111");
  console.log(config);
  console.log("111111111111111111");
  //记住这个地方拦截后要放行
  return config;
})

axios.interceptors.response.use(
  response => {
  let result = response.data;

  console.log("===================");
  console.log(response);
  console.log("===================");

  //如果返回码为请求成功，直接放行，否则弹出错误警告
  if(result.code == 200){
    return response;
  }else{
    //调用Element组件
    //此处之所以不用this.$message.error()是因为当前axios.js是挂靠在main.js上的，不能用this表示自己
    Element.Message({
      showClose: true,
      message: response.data.msg,
      type: 'error'
    });
    return Promise.reject(response.data.msg);
  }
},
error => {
    //console.log(error);
    //如果发生异常，且异常时Shiro异常，那么要跳转回登录界面，并将全局容器中的共享数据清除
    if(error.response.status === 401){
      store.commit("REMOVE_INFO");
      router.push('/login');
    }else{
      Element.Message({
        showClose: true,
        message: error.response.data.msg,
        type: 'error'
      });
    }

    return Promise.reject(error);
})
